
 1000  *--------------------------------
 1010  *      GAME BUTTON SUBROUTINES
 1020  *--------------------------------
 1030  GAME.BUTTON .EQ $C061  BASE ADDRESS
 1040  *--------------------------------
 1050         .OR $800
 1060  *--------------------------------
 1070  GAME.BUTTON.INITIALIZE
 1080         LDA #0
 1090         STA GB.STAT
 1100         RTS
 1110  *--------------------------------
 1120  GAME.BUTTON.INSTALLED
 1130         JSR GET.BUTTON.STATUS
 1140         ORA GB.STAT  SET BITS OF ANY BUTTONS
 1150         STA GB.STAT  PLUGGED IN AND NOT PUSHED
 1160         RTS
 1170  *--------------------------------
 1180  GAME.BUTTON.PUSHED
 1190         JSR GET.BUTTON.STATUS
 1200         EOR GB.STAT  MASK OUT BUTTONS WHICH
 1210         AND GB.STAT    ARE NOT PLUGGED IN
 1220         STA GB.PUSH
 1230         RTS
 1240  *--------------------------------
 1250  GET.BUTTON.STATUS
 1260         LDX #2
 1270  .1     LDA GAME.BUTTON,X
 1280         EOR #$80     INVERT SENSE
 1290         ASL          INTO CARRY BIT
 1300  .2     ROR GB.PUSH
 1310         DEX          NEXT BUTTON
 1320         BPL .1
 1330         LDA GB.PUSH
 1340         AND #$E0     CLEAR EXTRANEOUS BITS
 1350         RTS
 1360  *--------------------------------
 1370  GB.STAT .BS 1
 1380  GB.PUSH .BS 1
 1390  *--------------------------------
 1400  MON.CV     .EQ $25
 1410  MON.HOME   .EQ $FC58
 1420  MON.VTAB   .EQ $FC22
 1430  MON.CLREOL .EQ $FC9C
 1440  MON.COUT   .EQ $FDED
 1450  TEST.MASK  .EQ $00
 1460  *--------------------------------
 1470  TEST   JSR MON.HOME
 1480         JSR GAME.BUTTON.INITIALIZE
 1490  .1     LDA #0
 1500         STA MON.CV
 1510         JSR MON.VTAB
 1520         JSR GAME.BUTTON.INSTALLED
 1530         JSR GAME.BUTTON.PUSHED
 1540         LDA #$84
 1550         STA TEST.MASK
 1560  .2     LDA TEST.MASK
 1570         AND GB.PUSH
 1580         BNE .3       PUSHED
 1590         LDA TEST.MASK
 1600         AND GB.STAT
 1610         BNE .4       NOT PUSHED
 1620         LDY #QTGONE-QTS   NOT INSTALLED
 1630         .HS 2C
 1640  .3     LDY #QTPUSHED-QTS
 1650         .HS 2C
 1660  .4     LDY #QTNOTPSH-QTS
 1670         JSR MSGOUT
 1680         LSR TEST.MASK
 1690         BCC .2
 1700         LDA $C000
 1710         BPL .1
 1720         STA $C010
 1730         RTS
 1740         BCS .1       ...ALWAYS
 1750  *--------------------------------
 1760  MSGOUT LDA QTS,Y
 1770         PHA
 1780         ORA #$80
 1790         JSR MON.COUT
 1800         INY
 1810         PLA
 1820         BPL MSGOUT
 1830         JSR MON.CLREOL
 1840         LDA #$8D
 1850         JMP MON.COUT
 1860  *--------------------------------
 1870  QTS
 1880  QTPUSHED   .AT /PUSHED/
 1890  QTNOTPSH   .AT /NOT PUSHED/
 1900  QTGONE     .AT /NOT INSTALLED/
 1910  *--------------------------------

